#include "header.h"

int TCP_Init_Sever(in_port_t port, const char *s_addr)
{
    int soc_fd;
    // 1、创建套接字

    soc_fd = socket(AF_INET, SOCK_STREAM, 0);
    if (-1 == soc_fd)
    {
        perror("socket error:");
        exit(-1);
    }

    // 2、填充服务器网络信息结构体
    struct sockaddr_in soc_addr_in;                  // 创建结构体
    soc_addr_in.sin_family = AF_INET;                // 结构体类型  IP4
    soc_addr_in.sin_port = htons(port);              // 端口号
    soc_addr_in.sin_addr.s_addr = inet_addr(s_addr); // IP地址
    socklen_t addrlen = sizeof(soc_addr_in);         // 结构体大小

    // 3、将套接字与服务器的网络信息结构体绑定

    if (-1 == bind(soc_fd, (struct sockaddr *)&soc_addr_in, addrlen))
    {
        perror("bind error:");
        exit(-1);
    }

    // 4、将套接字设置城 监听状态
    if (-1 == listen(soc_fd, 5))
    {
        perror("listen error:");
        exit(-1);
    }
    else
    {
        printf("系统启动成功 , 等待用户连接..\n");
    }

    return soc_fd;
}
